package cn.lucky.thread.method;

/**
 * @Author:蒋凌鹏
 * @Date:2020/9/16
 * @Explain:javaseries
 * 线程的常用方法
 *  1.currentThread()   返回当前线程
 *  2.getName()         返回当前线程的名称
 *  3.setName()         设置线程的名称，在获得线程的名称之前调用
 *  4.yield()
 *      Thread中有一个线程让步方法yield()，
 *      作用就是让步。它能让当前线程由“运行状态”进入到“就绪状态”，
 *      从而让其他具有相同优先级的正在等待执行的线程获取执行权；
 *      但是，并不能保证在当前线程调用yield()方法之后，其它具有相同优先级的线程就一定能获得执行权；
 *      也有可能是当前线程又进入到“运行状态”继续执行。
 *
 */
public class YieldMethod {

    public static void main(String[] args) {

        YieldThread myThread = new YieldThread();
        myThread.start();
        new YieldThread().start();
    }
}

class YieldThread extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i % 2 == 0){
                System.out.println(currentThread().getName() + ":" + i);
            }
            if (i % 20 == 0){
                yield();
            }
        }
    }
}